//TypeScript的函数参数是比较灵活的，它不像那些早起出现的传统语言那么死板。在TypeScript语言中，函数的形参分为：可选形参、默认形参、剩余参数形参等

//1.可选参数定义的时候可以通过?标注 当可选参数和声音参数同时出现的时候 可选参数是存在的 传入的实参也是和其一一对应的
//2.默认参数
//3.剩余参数
let sss=null;
function searchXIojie(age:number,stature?:string,...xuqiu:string[]):string{
       let uu:string =''
       uu = '找到了' + age + '岁'        //将这些注释掉，输出的将没有前两项仅输出（瓜子脸-nice-的小姐姐） 假如只有一个剩余参数存在 则会全部输出
       if(stature !=undefined){
           uu = uu+stature
       }                               //因此剩余参数默认对应映射除了定义普通形参和可选形参之外的实参

       for(let i=0;i<xuqiu.length;i++){
           uu = uu+xuqiu[i]
           sss=xuqiu.length
           if(i<xuqiu.length){
               uu=uu+'-'
           }
       }
       return uu+'的小姐姐'

}
var res:string = searchXIojie(22,'大长腿','瓜子脸','nice')
console.log(res)
console.log(sss,'len')

//支持 函数声明 函数表达式 箭头函数
function add(n1:number,n2:number):number{
    return n1+n2
}
var add1 = function(n1:number,n2:number):number{
    return n1+n2
}
console.log(add1(1,4))
var add2 = (n1:number,n2:number):number=>{
    return n1+n2
}
console.log(add2(1,4))



